/**
 * 给定一个整数的数组、和一个目标值
 * 在该数组中找出两个元素的和和目标值相等、而且数组中不能重复两遍
 * 如：nums [2,7,11,15] target 9
 * => 2 + 7 = 9 => 返回下标 [0,1]
 * @param {number[]} nums
 * @param {number} target
 */

const twoSum = function (nums, target) {
  // const map = new Map()
  const obj = {}
  for (let i = 0; i < nums.length; i++) {
    const n = nums[i]
    const n2 = target - n
    if (obj.hasOwnProperty(n2)) {
      // return [map.get(n2), i]
      return [obj[n2], i]
    } else {
      // map.set(n, i)
      obj[n] = i
    }
  }
}

console.log(twoSum([11, 2, 15, 7], 9))
